﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tanmia.Basis.Core;

namespace Tanmia.Warehouse.Core
{
    /// <summary>
    /// تصانيف المواد
    /// </summary>
    public class ItemCategory : BaseBusinessObject, ICategorizable
    {
        private int itemCategoryID;
        private string notes;
        private ItemCategory parent;

        /// <summary>
        /// رقم تعريف تصنيف المادة
        /// </summary>
        public virtual int ItemCategoryID
        {
            get { return itemCategoryID; }
            set { SetValue<int>("ItemCategoryID", ref itemCategoryID, value); }
        }

        /// <summary>
        /// ملاحظات
        /// </summary>
        public virtual string Notes
        {
            get { return notes; }
            set { SetValue<string>("Notes", ref notes, value); }
        }

        /// <summary>
        /// أب تصنيف المواد الحالي, وذلك من أجل إنشاء بنية شجرية للتصانيف الخاصة بالمواد
        /// </summary>
        public virtual ItemCategory Parent
        {
            get { return parent; }
            set { SetValue<ItemCategory>("Parent", ref parent, value); }
        }


        #region ICategorizable Members

        private string name;
        private string engName;
        private string code;
        private string number;

        /// <summary>
        /// اسم تصنيف المواد
        /// </summary>
        public virtual string Name
        {
            get { return name; }
            set { SetValue<string>("Name", ref name, value); }
        }

        /// <summary>
        /// الاسم الأجنبي لتصنيف المواد
        /// </summary>
        public virtual string EngName
        {
            get { return engName; }
            set { SetValue<string>("EngName", ref engName, value); }
        }

        /// <summary>
        /// رمز تصنيف المواد
        /// </summary>
        public virtual string Code
        {
            get { return code; }
            set { SetValue<string>("Code", ref code, value); }
        }

        /// <summary>
        /// رقم تصنيف المواد
        /// </summary>
        public virtual string Number
        {
            get { return number; }
            set { SetValue<string>("Number", ref number, value); }
        }

        #endregion
    }
}
